perm filename M[AP,SYS]1 blob sn#000445 filedate 1972-11-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Start of program: main loop.
C00003 00003	Start of program: main loop.
C00005 00004	Subroutines: TOTS,NXTDG.
C00007 ENDMK
C⊗;
;Start of program: main loop.

	TITLE	M

CHAR←2
AC1 ←3
BOT ←4
CNT ←5
QUO ←6
REM ←7
DX  ←10
BOT ←11
BP  ←12
P   ←17

CR←15	LF←12

PDLEN←30
NPNS←100

PDLIST:	BLOCK	PDLEN
NAME:	BLOCK	NPNS
COUNT:	BLOCK	NPNS
BLANKS:	ASCII	/     /
DIGITS:	BLOCK	4

USERSF:	SIXBIT	/USERS/
	BLOCK	3
IBUF:	BLOCK	3

DEFINE CHKANS {
	INCHRW	CHAR
	CAIE	CHAR,"Y"
	CAIN	CHAR,"y"}
;Start of program: main loop.

FAILED:	OUTSTR	[ASCIZ /	FAILED!
/]

M:	CALLI
	MOVE	P,[IOWD PDLEN,PDLIST]

	OUTSTR	[ASCIZ /

START UP [-AP-]? /]
	CHKANS
	JRST	[MOVEI	AC1,[SIXBIT /[-AP-]/
			     SIXBIT / APSYS/
			     0]		;wake up now
		 CALLI	AC1,400061	;WAKEME
		 JRST	FAILED
		 JRST	DONE]

	OUTSTR	[ASCIZ /
PREVENT [-AP-] FROM STARTING UP? /]
	CHKANS
	JRST	[MOVEI	AC1,[SIXBIT /[-AP-]/
			     SIXBIT / APSYS/
			     -1]	;wake up never
		 CALLI	AC1,400061	;WAKEME
		 JRST	FAILED
		 JRST	DONE]

	OUTSTR	[ASCIZ /
USER TOTALS? /]
	CHKANS
	JRST	TOTS

	OUTSTR	[ASCIZ /
THAT'S ALL FOLKS.
/]
	JRST	M
DONE:	OUTSTR	[ASCIZ /	DONE

/]
	CALLI	1,12			;EXIT
	JRST	M
;Subroutines: TOTS,NXTDG.

TOTS:
	OUTSTR	[ASCIZ/

/]
	MOVEI	BOT,1
	SETZM	COUNT
	SETZM	NAME
	INIT	0,10
	SIXBIT	/DSK/
	IBUF
	HALT	.
	SETZM	USERSF+3
	LOOKUP	0,USERSF
	JRST	FAILED
GETNAM:	SOSG	IBUF+2
	IN	0,
	JRST	[ILDB AC1,IBUF+1
		 JRST FIND]
	STATO	0,20000	
	HALT	.
	RELEAS	0,
	JRST	NNN

FIND:
	MOVE	DX,BOT
	JRST	CK
NEXT:	CAME	AC1,NAME(DX)
CK:	SOJGE	DX,NEXT
	JUMPL	DX,INSERT
	AOS	COUNT(DX)
	JRST	GETNAM
INSERT:	CAIL	BOT,NPNS
	JRST	[OUTSTR [ASCIZ / TOO MANY PNS.  /]
		 JRST	FAILED]
	MOVEM	AC1,NAME(BOT)
	MOVEI	AC1,1
	MOVEM	AC1,COUNT(BOT)
	AOJA	BOT,GETNAM

PRNTNX:	OUTSTR	NAME(BOT)
	MOVE	BP,[POINT 7,DIGITS]
	MOVE	QUO,COUNT(BOT)
	PUSHJ	P,NXTDG
	MOVEI	QUO,CR
	IDPB	QUO,BP
	MOVEI	QUO,LF
	IDPB	QUO,BP
	MOVEI	QUO,0
	IDPB	QUO,BP
	OUTSTR	BLANKS
NNN:	SOJGE	BOT,PRNTNX
	JRST	DONE

NXTDG:	IDIVI	QUO,=10
	PUSH	P,REM
	SKIPE	QUO
	PUSHJ	P,NXTDG
	POP	P,QUO
	ADDI	QUO,60
	IDPB	QUO,BP
	POPJ	P,

	END	M